package io.renren.common.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.io.Serializable;
import java.util.List;

/**
 * @Auther: qijiang
 * @Date: 2018/10/12 10:54
 * @Description: 实体与JSONObject相互转换
 */
public class EntityConversionJSONObjectUtil<T> implements Serializable {

    /**
     *
     * @author qijiang
     * @date 2018/10/12 上午11:06
     * @Param [t]
     * @return com.alibaba.fastjson.JSONObject
     * @Description 实体转JSONObject
     */
    public static<T> JSONObject EntityToJSONObject(T t){
        return JSONObject.parseObject(JSON.toJSONString(t));
    }
    /**
     *
     * @author qijiang
     * @date 2018/10/12 上午11:10
     * @Param [json, t]
     * @return T
     * @Description JSONObject转实体
     */
    public static<T> T JSONObjectToEntity(JSONObject json,Class<T> t){
        return JSONObject.toJavaObject(json, t);
    }
    /**
     *
     * @author qijiang
     * @date 2018/10/12 上午11:12
     * @Param [list]
     * @return com.alibaba.fastjson.JSONArray
     * @Description List转JSONArray
     */
    public static<T> JSONArray ListToJSONArray(List<T> list){
        return JSONObject.parseArray(JSON.toJSONString(list));
    }
    /**
     *
     * @author qijiang
     * @date 2018/10/12 上午11:14
     * @Param [array, t]
     * @return java.util.List<T>
     * @Description JSONArray转List
     */
    public static<T> List<T> JSONArrayToList(JSONArray array,Class<T> t){
        return JSONArray.parseArray(array.toJSONString(), t);
    }
}
